package dao

// 这是 ArticleGctt 的全局公开dao对象，被service层调用!
var ArticleGcttDao = articleGcttDao{}

// gctt 翻译文章信息表
// 这是 article_gctt表 的实体类,这个实体类中的字段可以减少，但是不能在其基础上增加!
type ArticleGctt struct {
	ArticleId  int32  `json:"article_id" form:"article_id" db:"article_id" v:"article_id"` // 文章ID
	Author     string `json:"author" form:"author" db:"author" v:"author"`                 // 原文作者
	AuthorUrl  string `json:"author_url" form:"author_url" db:"author_url" v:"author_url"` // 原文作者的主页
	Translator string `json:"translator" form:"translator" db:"translator" v:"translator"` // gctt译者
	Checker    string `json:"checker" form:"checker" db:"checker" v:"checker"`             // gcct校对
	Url        string `json:"url" form:"url" db:"url" v:"url"`                             // 原文链接

}

// 注意:这是 ArticleGctt 的私有dao对象，只能在dao层内使用!
type articleGcttDao struct {
	InsertTemplate func(arg ArticleGctt) (int64, error)             //插入一条记录
	UpdateTemplate func(arg ArticleGctt) (int64, error)             //更新一条记录
	DeleteTemplate func(id int64) (int64, error)                    `arg:"id"` //根据传入的主键删除一条记录
	SelectTemplate func(id int64) (ArticleGctt, error)              `arg:"id"` //根据传入的主键获取一条记录
	List           func(arg ArticleGcttList) ([]ArticleGctt, error) //模糊分页查询
}

/*
// 这是 article_gctt 表的Postman测试参数
// 该结构体中的字段就是: 前后端交互的json字段!
type ArticleGcttPostman struct {
article_id
author
author_url
translator
checker
url

}*/

// 这是 article_gctt 表的批量请求参数
type ArticleGcttReq struct {
	List []ArticleGctt `json:"list" form:"list"`
}

// 这是 articleGcttDao.List()方法的请求参数
type ArticleGcttList struct {
	Page
}
